package com.miya.demo.model.dto.dingtalk;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.util.List;

/**
 * dingtalk 消息dto
 *
 * @author CaiXiaowei
 * @date 2022/09/01
 */
@Data
public class DingtalkTemplateMsgDTO {

    /**
     * 微应用的id
     */
    @ApiModelProperty("微应用ID")
    private String agentId;

    /**
     * 接收者的部门id列表
     */
    private String deptIdList;

    /**
     * 接收者的用户userid列表
     */
    private String useridList;

    /**
     * 是否发送给企业全部用户 当设置为false时必须指定userid_list或dept_id_list其中一个参数的值。
     */
    private Boolean toAllUser;

    @ApiModelProperty(value = "标题")
    private  String title;

    /**
     * 消息内容，支持markdown，语法参考标准markdown语法。建议1000个字符以内。
     */
    @ApiModelProperty(value = "MarkDown文本")
    private String markDown;

    /**
     * 使用整体跳转ActionCard样式时的标题。必须与single_url同时设置，最长20个字符。
     */
    @ApiModelProperty(value = "整体跳转按钮标题")
    private String singleTitle;

    /**
     * 消息点击链接地址，当发送消息为小程序时支持小程序跳转链接，最长500个字符。
     */
    @ApiModelProperty(value = "整体跳转按钮链接")
    private String singleUrl;

    /**
     * 使用独立跳转ActionCard样式时的按钮列表；必须与btn_orientation同时设置，且长度不超过1000字符。
     */
    @ApiModelProperty(value = "使用独立跳转ActionCard样式时的按钮排列方式：0：竖直排列 1：横向排列")
    private String btnOrientation;

    @ApiModelProperty(value = "独立跳转按钮列表 ")
    private List<Button> btnJsonList;

    @ApiModelProperty(value = "1-无跳转 2-整体跳转 3-独立跳转 ")
    private Integer templateStyle;

    @Data
    @ApiModel(value = "独立跳转按钮")
    public static class Button {

        @ApiModelProperty(value = "按钮标题")
        private String title ;

        @ApiModelProperty(value = "跳转链接")
        private String actionUrl ;

    }

}
